#ifndef SCENES_GAMESCENE_H
#define SCENES_GAMESCENE_H

#include "gdn/GDN.h"

class GameObject
{
	public:
		GameObject( GameScene& theScene, GameApplication& theApp );

		int GetDepth() const;
		void SetDepth( int theDepth );

		gdn::Vector2f GetPosition() const;
		void SetPosition( gdn::Vector2f thePos );

		float GetGravity() const;
		void SetPosition( float theGravity );

		gdn::Vector2f GetSpeed() const;
		void SetSpeed( const gdn::Vector2f& theSpeed );

		virtual void Step();
		virtual void Step( const gdn::Event& event );
		virtual void Draw( gdn::Window& window );

	protected:
		GameScene& Scene;
		GameApplication& App;

		gdn::Sprite sprite;
		int depth;
		gdn::Vector2f pos;

		float gravity;
		gdn::Vector2f speed;

		virtual void GlobalMousePress( const gdn::Vector2f& clickPos, const gdn::Mouse::Button& clickButton );
		virtual void GlobalMouseRelease( const gdn::Vector2f& clickPos, const gdn::Mouse::Button& clickButton );
		virtual void GlobalMouseMove( const gdn::VEctor2f& mousePos );
};

#endif // SCENES_GAMESCENE_H


